2008-12-26  Juan Gonzalez <juan@iearobotics.com>
  * LIBERADO COMO VERSION 1.0-----------------------------------------
  * Para Debian Etch (4.0), con ODE 0.5

2008-12-23  Juan Gonzalez <juan@iearobotics.com>
  * Anadidos range/range-Pn.cpp y range/range-PYn.cpp
  * Anadido osciloscope/Osciloscopio.cpp
  * Anadido utils/Yn.cpp
  * Añadido directorio con otros programas para los experimentos
    -error/error_muestreo_FASE_N.py
    -error/error_muestreo.py
    -error/range_error_muetreo.py
    -modulo/Mod_lin_seq_gen.py
    -modulo/Espectro_N_modulo.cpp
    -modulo/Osciloscopio-Y1-escalon.cpp
    -modulo/Osciloscopio-Y1-escalon2.cpp
    -modulo/Osciloscopio-Y1.cpp
  * Anadido tools/ejemplos.txt, con ejemplos del uso de View para visualizar
    diferentes tipos de locomocion de robots ápodos
  * Anadido fichero leeme.txt, que indica como compilar
    
    

2008-12-22  Juan Gonzalez <juan@iearobotics.com>
  * Anadido osciloscope/Osciloscopio-file.cpp
  * Creado directorio robot con las herramientas para el control de robot
    reales
    -Todas las utilidades de consola y puerto serie se han metido en el
     directorio io, y se agrupan en la libreria libio.a. Se han incluido 
     tambien los ficheros de manera de los servos (stargate) para no tener
     que instalar la libstargate y reducir las dependencias de la instalacion
    -Anadido play/Play.cpp
    -Anadido play/Play-file.cpp
    -Anadido play/Play-3D.cpp. La funcionalidad de simulacion 3D + 
     reproduccion en robot real de momento esta deshabilitada en las RTK
    -En el directorio robot se han incluido los binarios de las utilidades
     Pn y PYn para que sea mas facil de utilizar
    -Anadido manual
    -Anadidas las herramientas para hacer las demostraciones con los robots
     Cube-rev, Hypercube, PP y PYP en el directorio Demos
  * Creado  directorio GA con las herramientas para los algoritmos geneticos
    -Programa GA metido en directorio GA-utils
    ->De momento se usa libreria estatica libpga0.a, modificada con respecto
     a la que viene con el paquete original
  * Anadida la libreria PGAPACK0 1.0.0.1-4 modificada para compilar con el 
    g++.

2008-12-21 Juan Gonzalez <juan@iearobotics.com>
  * Creado repositorio en: http://svn.iearobotics.com/cube_simulator/
  * Comenzada la limpieza de las fuentes. Se va a guardar todo bajo el nombre:
    Cube-simulator.
  * Se ha creado un directorio para la drawstuff, con su propio Makefile para
    compilarlo
  * Creado directorio Rtk, que contiene sólo las RTK y RTK3D. El Makefile 
    permite crear las librerias librtk.a y librtk3d.a así como los programas
    de ejemplo:
     -test-modulos-teclas.cpp
     -test-robots.cpp
     -Anadido fichero T1D.cpp a las RTK!!
  * Creado directorio tools para las herramientas de simulacion
     -Anadido makefile inicial
     -Anadido Utils/Pn.cpp
     -Anadido utils/Pyn.cpp
     -Anadido utils/sin2file.cpp
     -Anadido view/View.cpp
     -Anadidod view/View-fitness.cpp
     -Anadido view/View-file.cpp
     -Anadido view/View-file-fitness.cpp


-------------------------------------------------------
POST-TESIS. A partir del 2008-11-21 Ya soy doctor ;-)
-------------------------------------------------------

2008-05-07  Juan Gonzalez <juan@iearobotics.com>
  * Nuevos programas Demo-PP.cpp  y Demo-PYP.cpp para hacer pruebas con las configuraciones mínimas

2008-04-29  Juan Gonzalez <juan@iearobotics.com>
  * Nuevo progrrama Demo-hypercube.cpp para hacer com hypercube. Esta basado
en Demo-cube-rev.cpp.

2008-04-17  Juan Gonzalez <juan@iearobotics.com>
  * Nuevo programa Demo-cube-rev.cpp para hacer demostraciones de movimiento
    con el robot Cube Revolutions. Está basado en Play.cpp

2008-03-07  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: Modificada funcion T1D_step() para realizar los calculos de x,y,z
    usando el centro de masas en vez de el modulo de referencia. El codigo para
    usar el modulo de referencia no se ha borrado. Basta con descomentar la
    parte que hace referencia al Centro de masas para tenerlo como antes.

2007-07-09  Juan Gonzalez <juan@iearobotics.com>
  * Range_Pn.cpp: La normaliacion de algugnos parametros se realiza 
    diviendo entre L/K en vez de solo entre L.

2007-06-10  Juan Gonzalez <juan@iearobotics.com>
  * View-Fitness.cpp: Anadido parametro DL para visualizar la distancia
    total recorrida
  * Range_PYn.cpp, Range_Pn.cpp: Añadida generacion de la funcion para
    mostrar la distancia total recorrida (DL)

2007-06-03  Juan Gonzalez <juan@iearobotics.com>
  * Rtk-Chain.h: Puesta la constante RTK_MAX_MOD que indica el numero maximo
    de modulos que puede tener una cadena. La constante T1D_MAX_MOD ha sido
    eliminada.
  * BUG: Para gusanos de mas de 24 segmentos el simulador peta. Se ha 
    cescubierto que es debido a los puntos de contacto con el suelo. Inicial-
    mente el robot esta en posicion horizontal y hay muchisimos puntos de
    contacto con el suelo--> peta. Si embargo, si se le da una pequena 
    altura inicial, el robot adopta una forma, disminuyen los puntos de 
    contacto y no peta. Pero siempre que haya muchos puntos de contacto
    habra un segmentation fault.

2007-06-01  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: Anadido elemento worm.zmax_ciclo que devuelve la altura 
    maxima en cm a la que se eleva el modulo de referencia.
  * Osciloscopio.cpp: Anadida visualizacion de zmax, Amplitud global y 
    Amplitud global normalizada.

2007-05-27  Juan Gonzalez <juan@iearobotics.com>
  * PYn.cpp: Modificada la interpretacion de la DF de la onda horizontal. 
    Un valor positivo indica propagacion hacia la derecha y negativo hacia
    la izquierda, igual que con la onda vertical.

2007-05-24  Juan Gonzalez <juan@iearobotics.com>
  * Pn.cpp y PYn.cpp: Modificada la generacion de las diferencias de 
    fase en las articulaciones verticales. Ahora la fase 0 se corresponde con 
    una funcion sin (antes se correspondia con -sin)


2007-05-20  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: Los ficheros generados para octave incluyen la cabecera:
     #!/usr/bin/octave  para poder ser auto-ejecutables cuando tienen
     los permisos de ejecucion activados
     -Modificado el timeout. Ahora no es por numero de ticks sino por
     el periodo T. Esto permite detectar timeouts con independencia del
     paso de simulacion empleado (da igual que sean tics de 10ms o 1ms)

2007-05-10  Juan Gonzalez <juan@iearobotics.com>
  * Osciloscopio.cpp: Nueva version que toma los datos de la linea de
    comandos en vez de por un fichero (asi se evitan errores de 
    redondeo)

2007-05-08  Juan Gonzalez <juan@iearobotics.com>
  * Yn.cpp: Version creada a partir de Pn.cpp para trabajar con
    configuraciones Yn.


2007-05-07  Juan Gonzalez <juan@iearobotics.com>
  * Range_Pn.cpp: El nombre del parametro T se ha sustituido por N


2007-05-04  Juan Gonzalez <juan@iearobotics.com>
  * Osciloscopio-file.cpp: Anadida la opcion Yn para visualizar estructuras
    de tipo Yn, en la que todos los modulos estan en posicion Yaw.

2007-05-02  Juan Gonzalez <juan@iearobotics.com>
  * error_muestreo_FASE_N.py: Programa que saca en una grafica en 3D
    la funcion error_m(F,N). Es el error de muestreo en funcion de N y de
    la fase.

2007-05-01  Juan Gonzalez <juan@iearobotics.com>
  * Range_Pn.cpp: Anadido parametro F, para hacer range sobre la fase
    inicial. Solo es para configuraciones de 1 modulo. No se ha 
    programado pensando en mas modulos, aunque podria funcionar

2007-04-24  Juan Gonzalez <juan@iearobotics.com>
  * Modificado Espectro_N_modulo.cpp para resolucion de 0.001 (1ms).
    Ahora la grafica que relaciona T y N sale perfecta! :-)
  * Nuevo error_muestreo.py: Nuevo script para calcular el error de 
    muestreo en funcion de la fase inicial  
  * Nuevo range_error_muetreo.py para calcular el error maximo en funcion
    del numero de muetras  

2007-04-23  Juan Gonzalez <juan@iearobotics.com>
  * Mod_lin_seq_gen.py: Nuevo script en python para generar una secuencia
    uniforme entre 0 y 90, con el numero de muestras indicadas.

2007-04-22  Juan Gonzalez <juan@iearobotics.com>
  * Range_PYn.cpp: Arreglado bug. No funcionaba cuando el numero de modulos
     era igual a 1. Ahora ya si
     
  * Range_Pn.cpp: Version inicial a partir de Range_PYn.cpp. En principio, 
      las aplicaciones Range_Pn_A, Range_Pn_DF, Range_Pn_T quedan obsoletas
      
  * Espectro_N_modulo.cpp: Comenzado programa para ver la relacion entre N
    y T en una secuencia para un modulo. Creado a partir de Range_Pn.cpp

2007-04-18  Juan Gonzalez <juan@iearobotics.com>
  * Osciloscopio-file.cpp:
     -Generado nuevo fichero OSC_data_phi_ts.m que incluye las posiciones
      de refencia

2007-03-16  Juan Gonzalez <juan@iearobotics.com>
  * GA.cpp:
     -Implementado cromosoma: Ti_Ai_Oi_Fi

2007-03-15  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado GA.cpp para unificar todos los programas de algoritmos geneticos
    -Implementado el paso de los nuevos parametros, incluido el cromosoma
    -Implementados dos tipos de chromosomas. Los programas GA_Pn1 y GA_PYn
     quedan obsoletos. Se pueden sustituir por el nuevo GA
       ->Cromosoma: T_Av_Ah_DFv_DFh_DFvh
       ->Cromosoma: T_DF_A
       ->Cromosoma: RAW
    -Creado nuevo fichero chromosome.cpp para contener las funciones 
     relacionadas con los cromosomas.    
       
  * Nuevo View-file-fitness para leer el fitness de los individuos que se
    encuentran en un fichero .mvm  


2007-03-14  Juan Gonzalez <juan@iearobotics.com>
  * Nuevo Osciloscopio-file.cpp. Permite leer todos los datos necesarios para
    configuraciones Pn y PYn. Este programa unifica todos los anteriores 
    Osciloscopios, que han quedado obsoletos. Los ficheros que se generan
    son:
      OSC_data_rot.m   : Rotacion del modulo de referencia: pitch, yaw, roll
      OSC_data_wrot.m  : Velocidad de rotacion del mod. de ref.
      OSC_data_rcm.m   : Posicion del mod. de ref. x,y,z
      OSC_data_vcm.m   : Velocidad del mod. de ref.
      OSC_data_phi.m   : Variaciones angulares del servo 
      OSC_data_w.m     : Velocidades del servo
      OSC_data_F.m     : Posiciones de refencia enviadas al servo
      
  * Nuevo View-file.cpp. Visualizacion de configuraciones Pn y PYn especifi-
    candose las funciones de los generadores mediante ficheros .mvm.
    Permite visualizar varias configuraciones Pn y PYn simultaneamente

  * El antiguo Play.cpp se ha renombrado a Play-file.cpp para seguir la misma
    notacion que Osciloscopio-file y View-file.
    
  * El antiguo Play-sin.cpp se ha renombrado a Play.cpp
  
  * Actualizado el manual
  
  * Nuevo sin2file.cpp para obtener ficheros .mvm a partir de los parametros
    de los generadores sinusoidales
    
  * Nuevo View.cpp para visualizar cualquier configuracion (PYn o Pn) a 
    partir de generadores sinusoidales
    
  * Nuevo View-fitness.cpp para visualizar todos los datos de cada ciclo, 
    asi como la funcion de fitness solicitada. Las aplicaciones View-T1D y
    View-T1D2 han quedado OBSOLETAS.


2007-03-13  Juan Gonzalez <juan@iearobotics.com>
  * Primera version de Play operativa.
    -Anadidos los ficheros consola_io.c, sg-tramas-servos8.c, consola_io.h y
     sg-tramas-servos8.h.
    -El puerto serie se puede pasar como parametro
    -Funcionamiento correcto a traves de conversor USB-serie
    -Anadidas diferentes teclas para el control:
       -p: modo pausa
       -d: cambiar la direccion
       -t: Modo PASO: el robot se mueve solo un periodo
    -Anadidos nuevos parametros para especificar la CONEXION. Ahora se puede
     utilizar cualquier placa: matrix 1, matrix 2, skypic, ct6811....
     
  * Primera version de Play-sin.cpp para reproducir una secuencia sinusoidal
    en el robot fisico. Se pueden especificar los numeros de los servos. Los
    parametros de los generadores son los mismos que para el programa View-T1D 
    
  * El valor aproximado de la pausa utilizada en Osciloscopio_Pn para adaptar
    lo virtual a lo real es de :
        * usleep(int (sim.step*314000));	para 1 modulo
        * usleep(10); Para PP
        
  * Creado Pn.cpp para generar los parametros de los generadores de las
    configuraciones Pn  
    
  * Actualizado manual.txt 
  
  * Nuevo Play-3D que mueve el robot real y el virtual. LOS DOS ROBOTS ESTAN
    SINCRONIZADOS!! ES LA CAÑA!!!!!!!
  
  * Rtk-Y1Module.cpp, Rtk-Simulation-Engine.cpp y T1D.cpp modificados para 
    soportar robots fisicos.  


2007-03-12  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado programa Play.cpp para reproducir ficheros .mvm en el robot
    real


-------------------------------------------------------------------------------
---          VERSION 0.4 FINALIZADA. TAG:  release_0_4                   ------
-------------------------------------------------------------------------------
Todos los experimentos iniciales se han finalizado

2007-03-08  Juan Gonzalez <juan@iearobotics.com>
  * Range_PYn.cpp: Arreglado un bug al hacer range sobre DFvh. Los resultados
     que se obtenian (la grafica) NO eran correctos. Ahora se calcula el 
     valor de DFvh y DFh inicialmemnte y se almacena en las variables
     DFvh_ini y DFh_ini. Luego se recalculan las fases a partir de ellos y del
     valor del parametro a variar


2007-02-09  Juan Gonzalez <juan@iearobotics.com>
  * GA_PYn.cpp: Anadido control del volcado mediante una constante
     defina en el codigo. Se puede habilitar o deshabilitar cambiando esta
     constante


2007-02-07  Juan Gonzalez <juan@iearobotics.com>
  * Range_PYn.cpp: Primera version operativa
     -Anadida grafica del periodo
  * GA_PYn.cpp:
     -Modificado para introducir la opcion de volcado. Hay individuos que
      dentro de un mismo ciclo hacen roll de 90 grados y luego de -90 grados,
      dando un resultado neto de 0. Ese tipo de soluciones se quieren evitar.
      Si ocurre eso se dice que el robot "ha volcado".
     -El volcado se comprueba desde el instante 0.

2007-02-06  Juan Gonzalez <juan@iearobotics.com>
  * Range_PYn.cpp: Implementados parametros en linea de comandos

2007-02-05  Juan Gonzalez <juan@iearobotics.com>
  * Range_PYn.cpp: Comenzado programa

2007-02-02  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp:
      -Anadidas funciones comunes para manejo del fitness
  * View-T1D2.cpp:
      -Usa las funciones comunes para el fitness definidas en T1D.cpp
  * GA_PYn.cpp:
      -Usa las funciones comunes para el fitness definidas en T1D.cpp
      -Anadidos como parametros el tipo de fitness, el numero de modulos,
       el ciclo inicial y el numero de ciclos
      -Se imprime el genotipo: nm T  Av Ah 0 0 DFv DFh DFvh
      -Algoritmo genetico validado para fitness DX

2007-02-01  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado View-T1D2.cpp que hace lo mismo que View-T1D.cpp pero se le
    pasan algunos parametros nuevos


2007-01-31  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: 
      -Calculo de los incrementos de roll y pitch en un ciclo
      -Calculo de las velocidades angulares medias por ciclo
      -Calculados los parametros angulares por intervalo
      -Posibilidad de construir las configuracicones usando cpgs para 
       los generadores o directamente las funciones. Asi es posible 
       construir las configuraciones a partir de ficheros .mvm
  * View-T1D:
      -Hecha limpieza 
  * Primera version de Osciloscopio_PYn.cpp
  * Programa PYn.cpp para generar los parametros para View-T1D de cualquier
    confiuracion PYn
  * Comenzado GA_PYn.cpp para trabajar con algoritmos geneticos y 
    configuraciones PYn.
  

2007-01-30  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: Solucionados algunos problemas de calculo del yaw. Tal y como 
     se utiliza ahora, hay ocasiones en las que aparece un error. Hay que
     tener en cuenta que el metodo no es perfeto y que error hay.
     TRABAJAR CON ANGULOS DE EULER ES UN INFIERNO. Pero al menos, la
     aproximacion realizada parece que funciona en la mayoria de los casos.
     


2007-01-29  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: 
      -Implementado el nivel de intervalo.
      -Implementada funcion generica para obtener ficheros octave
      -Calculados pitch, yaw y roll en todos los casos. Para evitar 
       problemas, cuando hay una singularidad (roll=+-90), pitch y yaw
       no se calculan. Se deja su valor anterior. En los movimientos 
       normales no deberia haber problemas ya que lo que interesa es el
       incremento del valor de los angulos en un ciclo y no tanto el valor
       instantaneo.

2007-01-28  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: Realizado un poco de limpieza en el codigo.

2007-01-26  Juan Gonzalez <juan@iearobotics.com>
  * T1D.cpp: Solucionado problema de las Singularidades para YAW. Al calcular
    el yaw a partir de los quaterniones, la formula empleada no es valida 
    cuando se esta cerca de valores de yaw de 90. En esos casos hay que
    calcularlo directamente utilizando la definicion de quaternion.
      -Sin embargo, con una formula, los angulos se obtienen en el intervalo
        [-90,90], pero con la otra formula (la de la singularidad) se obtienen
        angulos fuera de ese rango. Por tanto hay que convertir.
      -El calculo del yaw instantaneo funciona al menos con el individuo 
       T4 cuando realiza rotacion horaria. No se ha probado con la rotacion
       antihoraria ni con otros movimientos.
      -El calculo del Paso Yaw en un ciclo tampoco se ha comprobado con las
       nuevas modificaciones.

2007-01-24  Juan Gonzalez <juan@iearobotics.com>
  * Realizada limpieza del directorio
  * Modificado Makefile. Algunos objetivos no se limpiaban con make clean
  * La version 2.0 se ha llevado al directorio version-2.0, con todos los
    ficheros de pruebas que se tenian
  * T1D.cpp:
     -Los modulos Yaw se dibujan rojos, los pitch amarillos
     -Implementadas la lectura de posiciones y velocidades lineales
  * View-T1D.cpp:
     -Simplificacion del programa
     -Se imprimen en pantalla las posiciones y velocidades lineales
     -Primera implementacion de las posiciones angulares


-------------------------------------------------------------------------------
---          VERSION 0.3 FINALIZADA. TAG:  release_0_3                   ------
-------------------------------------------------------------------------------
2007-01-24  Juan Gonzalez <juan@iearobotics.com>
  * Congelar la version 0.3. Esta es la version que se ha utilizado para
    realizar los experimentos de locomocion en 1D. A partir de la siguiente
    version se trabajara en la locomocion en 2D y en la unificacion de las
    diferentes herramientas, para englobar tambien la locomocion en 1D


2007-01-22  Juan Gonzalez <juan@iearobotics.com>
  * Nuevo PXn_param.cpp para generar los parametros para View_Pn y 
    Range_Pn_XXX.  
  * Comenzado View_T1D.cpp, basado en T1D.cpp, para visualizar cualquier
    topologia de 1D moviendose mediante CPGs sinusoidales 
      -Primera version que ya permite construir robots PYn    
    

2007-01-21  Juan Gonzalez <juan@iearobotics.com>
  * View_Pn.cpp, Range_Pn_DF.cpp:
     -Modificados para introducir un TIMEOUT. Si el robot pasa mas de 
      ese tiempo en un ciclo, se aborta.
  * GA_Pn1.cpp: Anadido un timeout


2007-01-14  Juan Gonzalez <juan@iearobotics.com>
  * GA_Pn1.cpp: Primera version que parece funcionar. Permite encontrar
    soluciones en el espacio A-T-DF para configuraciones Pn y PXn.
    


2007-01-13  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado GA_Pn1.cpp a partir de GA_PP3.cpp para realizar experimentos
    geneticos en el espacio A,O,T,DF de las configuraciones Pn y PXn


2007-01-05  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado Range_Pn_T.cpp a partir de Range_Pn_DF.cpp
    -Validado. Los datos parece que son fiables
  * Comenzado Range_Pn_A.cpp a partir de Range_Pn_T.cpp
    -Validado. Los datos parece que son fiables
  


2007-01-04  Juan Gonzalez <juan@iearobotics.com>
  * Rtk-Chain.cpp:
    -Solucionado BUG "extrano". Las cadenas no se simulaban bien
     Por ejemplo, en la secuencia:  90 4 0 0 90 4 83 0 de una configuracion
     PP el modulo derecho no se movia con amplitud de 90.
  * Comenzado Range_Pn_DF.cpp a partir de Range_PP_DF.cpp
    -Primera version operativa. Tambien funciona con configuraciones
     del tipo PXP (utilizando el concepto de modulos activos)

2007-01-03  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado Osciloscopio-Pn.cpp a partir de Osciloscopio-PP.cpp y 
    View-Pn.cpp
      -Primera version lista para hacer experimentos
  * Rtk-Sampled-Function.cpp: Funciones Rtk_Sampled_Function_new_from_mvm_file
    y Rtk_Sampled_Function_new_from_mvm_file_fd modificadas para devolver
    un valor entero que indique si la funcion se ha leido o no
  * Rtk-Chain.cpp:
      -Nueva funcion Rtk_Chain_set_initial_pos() para establecer la posicion
        inicial de la configuracion
    

2007-01-02  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado View-Pn.cpp para visualizar configuraciones superiores del
    tipo Pn. Se ha partido del fichero View-PP-sin1.cpp.
    -Primera version lista
    
  * Nuevo programa Pn_param.cpp para generar los parametros para usar con
    el programa View-Pn. Ejemplo de uso:
        ./View-Pn `./Pn_param 3 80 10 120 0`
    Visualizar una configuracion P3 que pertenece al espacio homogeneo+O
    con A=80, T=10, DF=120


2006-12-29  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado programa GA_PP3.cpp basado en GA_PP2.cpp para buscar en el 
    espacio A-O-T-DF

2006-12-28  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado programa GA_PP.cpp basado en Range_PP_A.cpp y 
    GA_PP_locomotion7.cpp. Permite utilizar algoritmos geneticos
    usando de fitness la velocidad y el paso.
    -Primera version operativa. Se obtienen los mismos resultados
     que con GA_PP_locomotion6, lo que implica que esta funcionando
     bien
     
  * Comenzado GA_PP2.cpp basado en GA_PP.cpp para hacer busquedas en el 
    espacio A1-A2-T-DF

2006-12-27  Juan Gonzalez <juan@iearobotics.com>
  * Primera version de Range_PP_A.cpp, generado a partir de 
    Range_PP_T.cpp

2006-12-25  Juan Gonzalez <juan@iearobotics.com>
  * Primera versión de GA_PP_locomotion6.cpp para estudiar el espacio 
    Homogeneo: A-T-DF

2006-12-18  Juan Gonzalez <juan@iearobotics.com>
  * Primera version de Range_PP_DF.cpp, generado a partir de 
    Range_PP_T.cpp

2006-12-12  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado programa Range_PP_T.cpp para sacar las graficas del periodo,
    paso y velocidad en funcion del numero de muestras
    -Motor de la primera version finalizado
    -Generenados los ficheros octave con los datos
    -Primera version de Range_PP_T lista

2006-12-07  Juan Gonzalez <juan@iearobotics.com>
  * View-PP-sin1.cpp: Visualizacion de los angulos de los modulos izquierdo
    y derecho cuando se pulsa la tecla 3

2006-12-03  Juan Gonzalez <juan@iearobotics.com>
  * GA_PP_locomotion5.cpp:
    -Version inicial a partir de GA_PP_locomotion4.cpp

2006-11-13  Juan Gonzalez <juan@iearobotics.com>
  * GA_PP_locomotion4.cpp:
     -Version inicial a partir de GA_PP_locomotion3.cpp
     -Realizados los primeros experimentos

2006-11-07  Juan Gonzalez <juan@iearobotics.com>
  * Version inicial del Osciloscopio_PP2, para evaluar el movimiento no unif.
  * Se generan ficheros con la posicion del centro de masas, variacion de los
    angulos de los servos (phi), tiempo medio, velocidad meia y paso.
  * Se pasan como parametros el fichero .mvm y el numero de ciclos a simular
  * Se ha probado con movimiento uniforme y tambien funciona. Es un soft.
    generico.

2006-11-06  Juan Gonzalez <juan@iearobotics.com>
 * Nuevo GA_PP_locomotion3 creado a partir del GA_PP_locomotion2, para 
   hacer los experimentos de simetria (experimento 8).
 * Se devuelve el valor absoluto del fitness, de manera que si el robot se
   mueve hacia la derecha, no devuelve 0, como antes.

2006-11-02  Juan Gonzalez <juan@iearobotics.com>
 * GA_PP_locomotion2.cpp:
     -generacion del fichero exp7_GAX_pob10_iter10_evol.txt


2006-10-30  Juan Gonzalez <juan@iearobotics.com>
  * GA_PP_locomotion2.CPP:
     -No se utiliza mas la funcion PGARun: ahora se tiene control del bucle
      principal del genetico.
     -La poblacion y el numero de iteraciones se puede pasar como argumento
      por la linea de comandos
     -Parametros cambiados: las 2/3 partes de la poblacion son reemplazadas
      en cada generacion
     -La seleccion se hace mediante PTOURNAMENT, con probabilidad 0.6
     -Generacion de una grafica Octave con la evolucion del Fitness en 
      funcion de las iteraciones: exp7_GAX_pobXX_iterYY_evol.m

2006-10-24  Juan Gonzalez <juan@iearobotics.com>
  * Nuevo GA_PP_locomotion2.cpp creado a partir de GA_PP_locomotion2. Se van
    a modificar los parametros del genetico para adecuarlo al problema de 
    la locomocion
     - Se utilizan enteros para la codificacion, defiendo su rango de validez
     - La funcion de fitness NO puede ser NEGATIVA!! Esto puede explicar 
       algunos experientes X's encontrados.

2006-10-17  Juan Gonzalez <juan@iearobotics.com>
  * View-PP-sin1.cpp: Visualizacion del tiempo relativo al ciclo cuando se 
     pulsa la tecla 2
     
  * BUG solucionado: Al leer fichero .mvm, el -0 se interpreta como 2 ceros y
    por tanto el periodo de las senales se incrementaba en una unidad

2006-10-16  Juan Gonzalez <juan@iearobotics.com>
  * Nuevo: View-PP-sin1.cpp. Visualizacion de una configuracion PP controlada 
    por CPGs sinusoidales.

2006-10-15  Juan Gonzalez <juan@iearobotics.com>
  * GA_PP_locomotion1.cpp: Arreglados bugs. Generando diferentes resultados
     para comparar.
     - No se usan individuos duplicados. Para establecerlo hay que usar la
       funcion:
         PGASetNoDuplicatesFlag(ctx,PGA_TRUE);  
     - Los resultados obtenidos se estan guardando en el log de la tesis.

2006-10-12  Juan Gonzalez <juan@iearobotics.com>
  * GA_PP_locomotion1.cpp: experimentos con CPGs sinusoidales en la
    configuracion PP. Un primer resultado preliminar (para probar):
    
    Fitness: 15.73cm
    A:65, T:46, F:21, O:-25
    A:69, T:175, F:56, O:-21
    
    [-1, 29, 39, 25, -8, -48, -79, -89, -75, -41, ];
    [36, 47, 33, -1, -44, -78, -89, -75, -40, 2, ];
    
  * En esta primera version el periodo se fija a 10 para los dos CPGs, ya que
    cuando son diferentes "casca" (BUG)
    
  * Otro resultado:
    Fitness: 19.33 cm
    A:90, T:240, F:27, O:0
    A:78, T:201, F:175, O:-12
    [40, 88, 14, -80, -63, ];
    [-5, -83, -63, 28, 64, ];
    
    Este se parece bastante al generado con los alg. geneticos genericos. 
    Periodo fijado a 5
    
  * Rtk-SampledFunction.cpp: Corregido un bug en 
     Rtk_Sampled_Function_new_from_mvm_file()  

    

2006-09-27  Juan Gonzalez <juan@iearobotics.com>
  * Osciloscopio-PP. Se muestran los siquientes datos:
     -Duracion de cada periodo
     -Distancia recorrida por periodo
     -Velocidad media

2006-09-26  Juan Gonzalez <juan@iearobotics.com>
  * Osciloscopio-PP: Generacion del fichero PP_data_rcm.m con los datos de 
    movimiento del centro de masas.

2006-09-25  Juan Gonzalez <juan@iearobotics.com>
  * Rtk_Sampled_Function_roll_left(): funcion para rotar a la izquierda
    una funcion sampleada
  * Rtk_Sampled_Function_new_from_harmonics(): Crear una funcion sampleada a
    partir de unos armonicos
  * Creado ejemplo Rtk-test3.cpp a partir de Osciloscopio-PP para hacer
    pruebas.  

2006-09-18  Juan Gonzalez <juan@iearobotics.com>
  * BUGFIX: Arreglado bug en Rtk-Generator. Al simular los generadores el 
     flag de transicion se activaba con un ciclo de retraso.
  * Osciloscopio-PP:
     -Generacion de las posiciones angulares (phi1 y phi2)
     -Generacion de las velocidades angulares (w1 y w2)     

2006-09-14  Juan Gonzalez <juan@iearobotics.com>
  * (Brussels, at the hotel. 6.33 in the morning)
  * New Osciloscopio-Y1-escalon2, for testing the response to a doble 
    step stimulus of one Y1 module.
  * New Osciloscopio-Y1, for testing the response to a general sampled
    functions, with a generic number of samples.
  * First version of the program: Osciloscopio-PP.
      -The sequences can be specified by the command line parameters  

2006-09-11  Juan Gonzalez <juan@iearobotics.com>
  * (Airport T4, Madrid)
  * New Osciloscopio-Y1-escalon.cpp, for testing the response to the step of
    one Y1 module.

2006-09-10  Juan Gonzalez <juan@iearobotics.com>
  * Eliminados todos los ficheros anteriores. Ahora solo se ha dejado todo lo
    relacionado con RTK
  * La version anterior se encuentra en el directorio Modulo-Y1-20060910 
  * Modificado Makefile

-------------------------------------------------------------------------------
---          VERSION 0.2 FINALIZADA. TAG:  release_0_2                   ------
-------------------------------------------------------------------------------

2006-09-10  Juan Gonzalez <juan@iearobotics.com>
   * Implementado Rtk_PP_reset();
   * Corregido bug en el reset de los generadores. Ahora el efecto es el 
     mismo al hacer un reset que al iniciar la simulacion por primera vez
   * RTK_SIMULATION_ENGINE:
     -Funcion Rtk_Simulation_Engine_reset() para llevar la simulacion y 
      todos sus "hijos" al estado inicial.
   * RTK_FITNESS:
      -Nueva funcion Rtk-Fitness-distance() y Rtk-3D-Fitness-distance() que
       funciona para un robot generico, no solo para configuraacion PP
      -La funcion de evaluacion funciona tanto para 3D como para consola.
       Se ha detectado que a veces aparece el error:
       "ODE Message 3: LCP internal error, s <= 0 (s=-0.0000e+00)"
      -En principio, la funcion de evaluacion esta lista para ser usada
   * RTK_ROBOT:
      -Nueva funcion Rtk_robot_get_pos() que devuelve la posicion de un 
       robot generico 
   * Nueva funcion Rtk_3D_Simulation_Loop() que incluye el bucle principal
     de simulacion. Permite que el usuario pueda hacer una simulacion de 
     manera muy rapida, casi sin escribir nada de codigo.   
   * GA:
      -GA_hola_mundo: Adaptada la API a RTK. Ejemplo que determina la mejor
       fase cuando el offset y la amplitud estan fijadas.
      -GA_generic_locomotion: Adaptado a la nueva API. Se han utilizado
       funciones genericas de 10 muestras, con una poblacion de 100 individuos
       y numero de iteraciones 500. Los resultados son:
         {35, -90, 31, -30, -67, -82, -45, 2, 90, 90, },
         {-90, 11, 13, -63, 31, 61, 61, 9, 10, -5, }, 
       y la distancia avanzada es de 23.37cm con 1000 ticks de simulacion 
       de 0.01 seg (10 segundos). (Velocidad de 2.3 cm/seg)
      -La parte de algoritmos geneticos esta lista para empezar a hacer pruebas       
     

2006-09-09  Juan Gonzalez <juan@iearobotics.com>
   * Rtk_Sampled_function_new_from_sine_func() Arreglado Bug: faltaba anadir
     el offset.
   * Rtk_Generator_set_func() modificada. Ahora se le pasa como parametro un
     puntero a una RTK_SAMPLED_FUNCTION en vez de a un array de muestras 
     y su tamano. 
   * RTK-FITNESS: Comenzado modulo
      -La funcion de evaluacion se ha integrado en RTK. De momento solo 
       funciona 1 vez y solo funciona para configuraciones PP  
   * RTK-Y1MODULES:
      -Nueva funcion Rtk_Y1Module_reset() para llevar el modulo al estado 
       inicial
   * RTK_GENERATOR:
      -Nueva funcion Rtk_Generator_reset() para llevar el generar al estado
       inicial      

2006-09-04  Juan Gonzalez <juan@iearobotics.com>
   * Nueva funcion Rtk_Sampled_function_new_from_sine_func() que permite crear
     una funcion muestreada a partir de los parametros de una funcion
     sinusoidal.
   * COMENZADO SIGUIENTE HITO. De momento no se van a anadir nuevas cosas
     a RTK (aunque si se haran modificaciones). Ahora hay que adaptar la 
     funcion de fitness a las RTK.
   * Fitness-pp, fitness-pp-3D, fitness-pp-3D-test y fitness-pp-test.
     Funcion de evaluacion implementada con el motor de simulacion de RTK,
     para PP.
   * RTK_SAMPLED_FUNCTION:  
     - La funcion Rtk_Sampled_function_new_from_mvm_file() puede leer ficheros
       .MVM de cualquier numero de muestras. 
     - Implementadas funciones para generar ficheros a MRS, C y Octave.
   * El fichero gmatrix-pp.cpp ya esta OBSOLETO.     
   

2006-09-03  Juan Gonzalez <juan@iearobotics.com>
  * Implementada funcion Rtk_Simulation_Engine_print() para imprimir el 
    arbol completo del Robogets.
  * Anadidos mas controles de errores de punteros nulos
  * Solucionado Bug que causaba "Segmentation fault"
  * Implementado el RTK_CHAIN para hacer una cadena de modulos

2006-09-02  Juan Gonzalez <juan@iearobotics.com>
  * RTK_ROBOT_GROUP Implementado!! Ahora se pueden hacer simulaciones de 
    varios robots en paralelo
  * Primera version de RTK_PP.
  * Los modulos de la configuracicon PP se pueden controlar de manera
    centralizada: equivalentes a "gait control tables" o bien de manera 
    independiente.
  * RTK-PP:
     -campo de Play
  * RTK_SAMPLED_FUNCTION:
     -Nueva clase para controlar funciones muestreadas
     -Se pueden leer desde un fichero y asignarselas a los generadores     
     

2006-09-01  Juan Gonzalez <juan@iearobotics.com>
  * Metido en Rtk-3D todo lo posible del acceso a Drawstuff. Simplificado
    al maximo.
  * Nuevo Rtk-3D-test-Y1-teclas que sustituye a modulo-y1-3D-teclas
  * Primera version del generador: Rtk_Generator.cpp
    -Implementados contador de periodos y senal de transicion de un periodo
     a otro. El periodo 0 es el transitorio.
    -El generador es "generico". Puede reproducir senales de cualquier tamano
     de muestras (no esta solo limitado a 10)
    -Implementada propiedad de Play. El generador se puede parar o activar 


2006-08-31  Juan Gonzalez <juan@iearobotics.com>
  * Programa pp-3D-seq adaptada a la nueva API de los modulos y1. Ya hay una
    configuracion PP que se esta movimiento con la nueva API.


2006-08-29  Juan Gonzalez <juan@iearobotics.com>
  * Modificado modulo-y1-medidas.cpp para funcionar con la nueva API.
    Los resultados son exactamente los mismo que cuando se usa el
    programa modulo-y1-3D-medidas.
  * Documentado con Doxygen
  * Documentados ficheros gmatrix-pp.cpp y gmatrix-pp.h

2006-08-27  Juan Gonzalez <juan@iearobotics.com>
  * Documentado comportamiento para entrada sinusoidal de 80 grados.
  * Documentado comportamiento para entradas sinusoidales de 40 y 20 grados.
  * modulo-y1-3D-seq.cpp eliminado. El programa modulo-y1-3D-medidas.cpp hace
    lo mismo, ademas de crear los ficheros con las mediciones.
  * modulo-y1-3D.cpp:
    -Cambiada arquitectura. Ahora los parametros relacionados con la 
     visualizacion 3D se encuentran en la estructura ModuleY1_3D que se
     pasa como parametro. Permite cambiar el color y el factor de visualizacion
    -Modulo documentado con Doxygen
  * modulo-y1-seq.cpp eliminado.
  
    

2006-08-26  Juan Gonzalez <juan@iearobotics.com>
  * Documentado comportamiento para doble escalon y un pulso

2006-08-24  Juan Gonzalez <juan@iearobotics.com>
  * modulo-y1-3D-doble-escalon:
     -Se imprime el tiempo de establacimiento para cada escalon.
     -Ahora se especifican las posiciones de refencia mediante los 
      argumentos.


2006-08-21  Juan Gonzalez <juan@iearobotics.com>
  * modulo-y1-3D-teclas.cpp: 
     -Ahora utiliza el motor de simulacion
     -Documentado con Doxygen
     -BUG SOLUCIONADO: Se quedaba "enganchado" el modulo y no se movia.
      Se ha solucionado estableciendo el parametro soft_cfm a 0.01 y 
      poniendo el modo a dContactBounce | dContactSoftCFM
     -Anadida tecla 'q' para finalizar la simulacion
     -Comprobado que el programa modulo-y1-3D-medidas.cpp sigue funcionando
      correctamente con las secuencias servo_test.mvm y servo_test_sin.mvm.
  * modulo-y1.cpp:
     -Nuevo paramero zini para establecer la z inicial del modulo.
  * modulo-y1-3D-medidas.cpp:
     -Terminada documentacion con Doxygen
  * modulo-y1-3D_escalon     
     -Solucionado bug. Ya no se queda enganchado
     -Documentacion con doxygen
     -Se pasa como parametro la amplitud del escalon
     -Programa funciona OK!
  * modulo-y1-3D-medidas:
     -Anadida grafica que compara la posicion de referencia con la obtenida
     -BUG: corregido periodo en posicion referencia
     -Modificadas las etiquetas de los ejes x e y
     -Escalado del eje Y fijado a -90,90
  * modulo-y1-3D-escalon:
     -Anadida grafica que compara la posicion de ref con la real  
  * Nuevo programa modulo-y1-3D-doble-escalon
     -Genera una grafica con dos escalones
  * modulo-y1-3D-medidas:
     -Modificada la grafica de comparacion entre posicion de referencia y 
      real. Ahora la de referencia se dibuja como escalones. Esto permite
      ver muy claramente lo que significa el parametro error_min.      
     

2006-08-19  Juan Gonzalez <juan@iearobotics.com>
  * Modulo-y1:
    -Realizado el experimento 3, con ondas sinusoidales
    -Experimento 3 documentado.
    -Fichero servo_test_sin.mvm, con funciones sinudoidales de 40 de amp y
     120 de desfase añadido al cvs. (es la misma secuencia cableada en el 
     programa modulo-y1-3d-medidas).
    -Incluido controlador PID, aunque en la simulacion no sirve de mucho
     ya que no hay inercias. Cuando se le dice al servo que vaya a una
     velocidad, lo hace instantaneamente. No es necesario un control PID.
     Sin embago, se deja para aplicaciones futuras. 
  * modulo-y1-3D-escalon.cpp: programa para obtener la grafica de la 
     respuesta al escalon.  
    


2006-08-18  Juan Gonzalez <juan@iearobotics.com>
  * Modulo-y1:
     -Parametros Li, Ld incluidos en la estructura Modulo_y1
     -Parametros Mi, Md includos en la estructura Modulo_y1
     -Renombrado parametro kp a Kp
     -Renombrado parametro servo_pos a pos_ref


2006-08-17  Juan Gonzalez <juan@iearobotics.com>
  * Cambiados interfaces de modulo-y1-motor y modulo-y1 para poder modificar
    facilmente los parametros del modulo-Y1 desde los programas que hacen
    la simulacion.
  * modulo-y1:
      -Nueva funcion ModuloY1_new() para crear e inicializar un modulo
       Se establecen los parametros por defecto
      -Nueva funcion ModuloY1_set_data() que permite cambiar los valores
       por defecto por otros
      -Parametro accesibles por las aplicaciones
         * error_min
         * xini,yini
         * dimensiones del modulo: grosor, altura, longitud
         * masa
         * par
         * kp
         * wmax

2006-08-16  Juan Gonzalez <juan@iearobotics.com>
  * modulo-y1:
    - Documentado  con Doxygen
    - Error minimo incluido en estructura Modulo_Y1 


2006-08-15  Juan Gonzalez <juan@iearobotics.com>
  * modulo-y1-3D-medidas:
    -Para solucionar los problemas de la simulacion, se han modificado
     diferentes parametros, pero la solucion es utilizar pasos de simulacion
     de 0.01 segundos. Tambien se modificado el valor de ContactSurfaceLayer 
     (en modulo-y1-motor.cpp). Antes tenia un valor de 0.001 y ahora 0.0001.
  * modulo-y1-motor:   
    - Comenzada documentacion con Doxygen para el motor
    - Parametros incluidos en el contexto de simulacion:
        -gravedad
        -cfm
        -erp
        -MaxCorrectingVel
        -SurfaceLayer
        -mu
        -step;
        -world
        -space
        -contactgroup
    - Ahora en el fichero modulo-y1-motor.cpp no hay ninguna variable global.
      Todo lo necesario para reflejar el estado de la simulacion esta en el
      contexto.      
    - Finalizada documentacion doxygen del modulo-y1-motor
  

2006-08-14  Juan Gonzalez <juan@iearobotics.com>
  * modulo-y1-3D-medidas: 
     * Generados tres ficheros:
     -servo_data_pos: posiciones
     -servo_data_vel: velocidad
     -servo_data_ref: Posiciones de referencia
     * Limitada la velocidad maxima del servo
     * Calculada la velocidad maxima (WMAX) y parametrizada
     * Ganacia del servo calculada y parametrizada
     * Con los nuevos parametros se acerca bastante a lo que es el 
       servo real, aunque hay algunos problemas en la simulacion. Hay que
       modificar algunos parametros para que vaya bien.       

2006-07-13  Juan Gonzalez <juan@iearobotics.com>
  * gmatrix-pp.cpp: Anadida funcion para leer una secuencia de movimiento
    en formato MRS
  modulo-y1-3D-medidas: primera version finalizada. Se lee un fichero 
   .mvm y se generan los ficheros: pos_deseada.m y servo_data.m
  * Nuevo modulo-y1-medidas.cpp, la version para consola de 
    modulo-y1-3D-medidas 


2006-07-12  Juan Gonzalez <juan@iearobotics.com>
  * modulo-y1.cpp: Anadidas funciones para crear modulo Y1 "de pie". Sin 
    embargo hay problemas de "vibraciones".No tengo muy claro a que son 
    debidas, asi que las pruebabs con el servo de verdad se haran en
    postura yaw.
  * gmatrix-pp.cpp: Modificada la funcion   generador_output_octave(). Ahora
    saca la salida por un stream en vez de directamente por la salida estandar
  * modulo-y1-3D-medidas.cpp: 
      -se genera el fichero pos_deseada.m con la grafica octave de las 
       posiciones deseadas.
      -Se genera el fichero servo_data.m con la grafica octave de las posiciones
       reales de los servos con cada tick de simulacion
  * Realizada una prueba con la secuencia obtenida con los algoritmos 
    geneticos. Se puede ver como se llegan a alcanzar velocidades punta de
    hasta 120 grados/segundo!!! Esta claro que tengo que modificar el 
    controlador del servo.    

2006-07-03  Juan Gonzalez <juan@iearobotics.com>
  * Comenzada fase 2: Refinamiento :-)
  * Nuevo fichero modulo-y1-motor.cpp, que incorpora las funciones necesarias
    para hacer la simulacion
  * Comenzado programa modulo-y1-3D-medidas, para realizar medidas en los
    modulos.


2006-07-03  Juan Gonzalez <juan@iearobotics.com>
  * PROBLEMA SOLUCIONADO!!!!! He recompilado la libreria libpga0.a, usando
    el compilador g++. He cambiado algunas cosas del codigo:
      -Se usaba la variable new, que en c++ es una palabra reservada
      -Daba un error en un modulo relacionado con la distancia de hamming,
       pero en principio no lo estoy utilizando.
  * Anadida la nueva libreria libpga0.a
  * Ejemplo GA_hola_mundo: obtiene la mejor fase cuando amplitud es 40,
    usando CPG's. No tengo "intuicion" sobre el tamano de la poblacion
    a usar, el numero de iteracciones, etc...
  * Comenzado prorama GA_generic_locomotion para obtener cuales son las
    funciones f1 y f2 mejores para la locomocion del robot. Seran 
    sinusoidales?? Que forma tendran??
  * GA_generic_locomotion:
      -Creada funcion para pasar del genotipo al fenotipo (obtener la
       matriz de movimiento).
  * Primer experimento con GA realizado! Los resultados son un poco 
    extranos. Los parametros empleados son: Tamano poblacion: 500,
    Iteraciones 100. Resultado:
       -68 36 18 -90 58 -9 -41 35 90 -90
        90 -16 -66 -12 63 -90 -1 55 -90 -14
  * Establecido los siguientes pasos a seguir en el TODO
  * VERSION 0.1 FINALIZADA. TAG:  release_0_1---------------------------------
  

2006-07-02  Juan Gonzalez <juan@iearobotics.com>
  * Comenzado programa GA_hola_mundo.c, para hacer pruebas con los
    Algoritmos geneticos. Basado en el ejemplo maxbit del paquete pgapack
  * PROBLEMA!! El paquete PGAPACK esta en C y el ODE en C++. Hay 
    incompatibilidad de librerias (¿?). Un programa compilado con g++ y
    otro con gcc, no linkan... Que puedo hacer????
    

2006-07-01  Juan Gonzalez <juan@iearobotics.com>
  * Resultado extrano. Hasta ahora pensaba en la simetria
    de las secuencias de movimiento. De forma que para la misma
    amplitud, una secuencia de desfase 90 y -90 deberia ser igual.
    Los resultados obtenidos son estos:
    
      Desfase: 0. Distancia: -0.009
      Desfase: -10. Distancia: -0.494
      Desfase: -20. Distancia: -0.558
      Desfase: -30. Distancia: -0.903
      Desfase: -40. Distancia: -1.922
      Desfase: -50. Distancia: -1.547
      Desfase: -60. Distancia: -2.218
      Desfase: -70. Distancia: -3.865
      Desfase: -80. Distancia: -3.782
      Desfase: -90. Distancia: -4.819
      Desfase: -100. Distancia: -4.920
      Desfase: -110. Distancia: -4.481
      Desfase: -120. Distancia: -4.089
      Desfase: -130. Distancia: -4.314
      Desfase: -140. Distancia: -4.659
      Desfase: -150. Distancia: -5.353
      Desfase: -160. Distancia: -3.607
      Desfase: -170. Distancia: -2.779
      Desfase: -180. Distancia: -0.033
      
      Que son diferentes a los equivalente con fase positiva... Tengo
      que investigar esto más a fondo. La primera hipotesis es que 
      se debe a la posicion inicial de arranque. Se parte de (0,0), que
      NO es parte de la secuencia.
  * Programa locomocion-cpg-pp.cpp, para hacer experimentos de locomocion.
    Recolectados los datos del Clawar 2005. fichero tx.m con x entre 10 y 90,
    representando x la amplitud.  


2006-06-30  Juan Gonzalez <juan@iearobotics.com>
 * Limpieza de los programas fitness-pp-3D-test.cpp y fitness-pp-3D.cpp
 * Corregido BUG: al repetir la misma simulacion no salian los mismos
   resultados. No se habia inicializado cada vez la variable n de
   comienzo de secuencia.
 * Los resultados obtenidos del programa fitness-pp-3D-test:
   $ ./fitness-pp-3D-test > t
   $ cat t
   Distancia: 30.6mm. Normalizada: 0.426
   Distancia: 20.5mm. Normalizada: 0.285
   Distancia: 3.6mm. Normalizada: 0.050
   Distancia: 0.1mm. Normalizada: 0.001
   Distancia: 30.6mm. Normalizada: 0.426
   Distancia: 20.5mm. Normalizada: 0.285
   Distancia: 3.6mm. Normalizada: 0.050
   Distancia: 0.1mm. Normalizada: 0.001
   
   -Se han evaluado 4 secuencias diferentes dos veces. Ahora, a partir
    de la linea 5 es una repeticion de la linea 1. Como debia ser.
   -Comenzado modulo fitness-pp.cpp, para realizar la simulacion sin
    renderizado en 3D
   -Modificado fitness-pp-3D.cpp. Ahora solo contiene lo imprescindible
    para realizar el renderizado. Ahora es un front-end grafico para
    para las funciones del modulo fitness-pp.cpp.
   -Nuevo programa de ejemplo fitness-pp-test.cpp, para evaluar secuencias
    sin renderizado. Se ha probado con 1000 TICKS y 4 secuencias. 
    Los resultados son: 
        $ ./fitness-pp-test
        Distancia: 366.1mm. Normalizada: 5.084
        Distancia: 256.4mm. Normalizada: 3.560
        Distancia: -2.4mm. Normalizada: -0.033
        Distancia: -0.6mm. Normalizada: -0.009
        
        Distancia: 366.1mm. Normalizada: 5.084
        Distancia: 256.4mm. Normalizada: 3.560
        Distancia: -2.4mm. Normalizada: -0.033
        Distancia: -0.6mm. Normalizada: -0.009
        
   - Experimento de prueba: Obtenidos datos de la distancia en funcion
     de la fase para amplitud 40 y desfase entre 0 y 180 (1000 ticks)
        Desfase: 0. Distancia: -0.009
        Desfase: 10. Distancia: 0.065
        Desfase: 20. Distancia: 1.295
        Desfase: 30. Distancia: 1.734
        Desfase: 40. Distancia: 2.147
        Desfase: 50. Distancia: 2.825
        Desfase: 60. Distancia: 3.662
        Desfase: 70. Distancia: 3.986
        Desfase: 80. Distancia: 4.068
        Desfase: 90. Distancia: 3.560
        Desfase: 100. Distancia: 4.499
        Desfase: 110. Distancia: 4.820
        Desfase: 120. Distancia: 5.084
        Desfase: 130. Distancia: 4.656
        Desfase: 140. Distancia: 4.623
        Desfase: 150. Distancia: 5.277
        Desfase: 160. Distancia: 3.148
        Desfase: 170. Distancia: 2.303
        Desfase: 180. Distancia: -0.033



2006-06-29  Juan Gonzalez <juan@iearobotics.com>
 * Programa gmatrix-pp-test.cpp, un ejemplo de uso del modulo gmatrix-pp.
   Permite generar secuencias de movimiento sinusoidales para la config. PP
   Se pueden exportar a los formatos MRS, OCTAVE y ODE.
 * Añadidos menues con las teclas usadas en los programas de ejemplo  
 * Añadida ayuda a gmatrix-pp-test.cpp
 * COMIENZO SIGUIENTE HITO: FUNCION DE FITNESS
 * Comenzado programa fitness-pp-3D-test.cpp
 * fitness-pp-3D-test: se imprime la distancia recorrida por el gusano
 * Primeras pruebas de evaluacion de secuencias:
      -A=40, desfase=120. Ticks: 10000. Distancia Normalizada: 5.08
      -A=40, desfase=90.  Ticks: 10000. Distancia Normalizada: 3.56
      -De momento la "tendencia" es igual que en la realidad: el desfase
        de 120 grados es mejor que el de 90 :-)
 * Primera version del modulo fitness-pp-3D.cpp, que contiene la funcion
   de evaluacion llamada desde fitness-pp-3D-test. 


2006-06-28  Juan Gonzalez <juan@iearobotics.com>
 * modulo-y1: La antigua funcion moduloY1_crear se ha sustituido por
     modulo_y1_crear_origen: crea un modulo Y1 y lo situa en el origen
   -La nueva funcion modulo_y1_crear() permite situar el modulo en 
    cualquier coordenada x,y del "suelo".
 * Primera version del modulo pp.cpp y pp.h para trabajar con la configuracion
   PP
 * Programa de ejemplo pp-3D-teclas.cpp, que permite mover la configuracion PP
   con teclas.
 * Modulo pp.cpp separado en pp.cpp y pp-3D.cpp. Uno simula y el otro
   renderiza.
 * Proyecto metido en el CVS
 * Primera version del programa pp-3D-seq.cpp, que mueve la configuracion
   PP segun una secuencia de movimiento almacenada en dos arrays. Incorpora
   Salida para Octave
 * Anadida constante para la ganancia del servo
 * pp-3D-seq.cpp: Creadas funciones para generar matrices de movimiento, asi
   como las funciones para generar salidas en MRS, octave y C.
 * El programa pp-3D-seq.cpp funciona con funciones con 10 muestras en vez
   de 20.
 * Nuevo gmatrix-pp.c y gmatrix-pp.h para trabajar con las matrices de
   movimiento para la configuracion PP.
 * Programa pp-3D-seq.cpp terminado. 
 * Programa pp-seq.cpp, igual que pp-3D-seq pero para consola. La salida
   de los servos se vuelca para octave.


2006-06-27  Juan Gonzalez <juan@iearobotics.com>
 * Limpieza modulo-y1.cpp. 
 * Documentacion.
 * Ejemplo de manejo del modulo Y1 con teclas: modulo-y1-3D-teclas.cpp
 * Separacion entre modulo-y1.cpp, que contiene la simulacion y 
   modulo-y1-3D.cpp que tiene el renderizado usando la libreria drawstuff
 * Programa de ejemplo modulo-y1-3D-teclas.cpp, que permite mover un modulo Y1
   con las teclas.
 * Programa de ejemplo modulo-y1-3D-seq.cpp, que hace que el modulo Y1 siga
   una secuencia de prueba
   - Como entrada se mete una secuencia sinusoidal, de 20 muestras
   - La salida se puede redireccionar a un fichero octave que contiene
     la variacion real del angulo del servo, en funcion de los ticks de
     reloj de la simulacion (tiempo).
 * Programa modulo-y1-seq.cpp, que genera un fichero para octave con la
   posicion del servo, cuando se le hace seguir una secuencia
